package com.niodata.md.rdb.crawler;

import com.niodata.md.rdb.model.Catalog;
import java.sql.DatabaseMetaData;
import java.util.List;

/**
 * metadata retrieval.
 */
public interface MetaDataRetrieval {

  /**
   * retrieve metadata by parent path.
   *
   * @return sub metadata retrieval
   * @throws Exception exception when retrieving metadata error occurred
   */
  public List<MetaDataRetrieval> retrieveMetaData() throws Exception;

  /**
   * set catalog.
   *
   * @param catalog catalog to be retrieved
   */
  public void setCatalog(Catalog catalog);

  /**
   * set metadata.
   *
   * @param metaData metadata to be retrieved
   */
  public void setMetaData(DatabaseMetaData metaData);


  /**
   * set datasource info.
   *
   * @param dataSourceInfo datasource info
   */
  public void setDataSourceInfo(DataSourceInfo dataSourceInfo);

  /**
   * set parent path.
   *
   * @param parentPath parent path
   */
  public void setParentPath(String[] parentPath);
}
